package service;

import model.Order;
import model.User;
import java.util.List;
import java.util.Map;

public interface OrderService { //订单业务逻辑接口 完成人：姜凯严、邓亦明 7/5
    boolean addOrder(Order order); // 添加订单

    boolean updateOrder(Order order); // 修改订单

    boolean deleteOrder(int orderId); // 删除订单

    Order findOrder(int orderId); // 根据订单ID查找订单

    List<Order> findAll(); // 查询所有订单

    /**
     * 处理红酒购买业务流程：生成标识码，批量创建订单，批量更新红酒库存。
     * 业务逻辑的复杂性主要在DAO层实现。
     * * @param user 当前购买的用户
     * 
     * @param purchaseItems 购买的红酒ID和数量的Map
     * @param onlineFlag    线上购买(1)或线下购买(0)的标识
     * @return 成功生成的8位订单标识码，如果失败返回-1
     */
    int processRedWinePurchase(User user, Map<Integer, Integer> purchaseItems, int onlineFlag); // <--- 在这里添加 onlineFlag
                                                                                                // 参数

    /**
     * 根据标识码更新一组订单的状态。
     * * @param orderCode 订单标识码
     * 
     * @param newStatus 新的状态
     * @return 是否所有匹配订单都更新成功
     */
    boolean updateOrdersStatusByCode(int orderCode, Order.OrderStatus newStatus); //
}